package com.ourteam.product.requirement.dao;

import net.dao.BaseQueryBean;
import net.dao.BaseWhereCriterion;
import net.dao.IDataAccessInterface;

import org.apache.commons.lang.StringUtils;

import java.util.Arrays;
import java.util.List;
import java.util.Map;


/**
 * Template Name : DAO查询对象
 * Template Version : 1
 * Template Last Modfiy Date : Sat Aug 19 10:06:32 CST 2017
 * Auto Generate Date : 2018-05-03 16:45:32
  * Warning ! This file will be overwrite when regenerate !
  *
 */
public class ProductRequirementRelateDAOQueryBean extends BaseQueryBean {
    public ProductRequirementRelateDAOQueryBean() {
        super();
    }

    public ProductRequirementRelateDAOQueryBean(BaseQueryBean aQueryBean) {
        super(aQueryBean);
    }

    public ProductRequirementRelateDAOQueryBean(BaseQueryBean aQueryBean,
        Map tableReplaceMap) {
        super(aQueryBean, tableReplaceMap);
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();

        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }

        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        return new Criteria(this);
    }

    public void addIdSelectProperty() {
        addIdSelectProperty("id");
    }

    public void addIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementRelateDAO.Id, aAlias);
        } else {
            addSelectProperty(IProductRequirementRelateDAO.Id, "id");
        }
    }

    public void addRequirementIdSelectProperty() {
        addRequirementIdSelectProperty("requirementId");
    }

    public void addRequirementIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementRelateDAO.RequirementId, aAlias);
        } else {
            addSelectProperty(IProductRequirementRelateDAO.RequirementId,
                "requirementId");
        }
    }

    public void addRelatedRequirementIdSelectProperty() {
        addRelatedRequirementIdSelectProperty("relatedRequirementId");
    }

    public void addRelatedRequirementIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementRelateDAO.RelatedRequirementId,
                aAlias);
        } else {
            addSelectProperty(IProductRequirementRelateDAO.RelatedRequirementId,
                "relatedRequirementId");
        }
    }

    public void addRelatedTypeSelectProperty() {
        addRelatedTypeSelectProperty("relatedType");
    }

    public void addRelatedTypeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementRelateDAO.RelatedType, aAlias);
        } else {
            addSelectProperty(IProductRequirementRelateDAO.RelatedType,
                "relatedType");
        }
    }

    public void addStatusSelectProperty() {
        addStatusSelectProperty("status");
    }

    public void addStatusSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementRelateDAO.Status, aAlias);
        } else {
            addSelectProperty(IProductRequirementRelateDAO.Status, "status");
        }
    }

    public void addRemarksSelectProperty() {
        addRemarksSelectProperty("remarks");
    }

    public void addRemarksSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementRelateDAO.Remarks, aAlias);
        } else {
            addSelectProperty(IProductRequirementRelateDAO.Remarks, "remarks");
        }
    }

    public void addRequestCodeSelectProperty() {
        addRequestCodeSelectProperty("requestCode");
    }

    public void addRequestCodeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementRelateDAO.RequestCode, aAlias);
        } else {
            addSelectProperty(IProductRequirementRelateDAO.RequestCode,
                "requestCode");
        }
    }

    public void addRequestNameSelectProperty() {
        addRequestNameSelectProperty("requestName");
    }

    public void addRequestNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementRelateDAO.RequestName, aAlias);
        } else {
            addSelectProperty(IProductRequirementRelateDAO.RequestName,
                "requestName");
        }
    }

    public void addRequestContentSelectProperty() {
        addRequestContentSelectProperty("requestContent");
    }

    public void addRequestContentSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementRelateDAO.RequestContent,
                aAlias);
        } else {
            addSelectProperty(IProductRequirementRelateDAO.RequestContent,
                "requestContent");
        }
    }

    public void addRequestLevelSelectProperty() {
        addRequestLevelSelectProperty("requestLevel");
    }

    public void addRequestLevelSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementRelateDAO.RequestLevel, aAlias);
        } else {
            addSelectProperty(IProductRequirementRelateDAO.RequestLevel,
                "requestLevel");
        }
    }

    public void addRequestStatusSelectProperty() {
        addRequestStatusSelectProperty("requestStatus");
    }

    public void addRequestStatusSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementRelateDAO.RequestStatus, aAlias);
        } else {
            addSelectProperty(IProductRequirementRelateDAO.RequestStatus,
                "requestStatus");
        }
    }

    public void addRequestTypeSelectProperty() {
        addRequestTypeSelectProperty("requestType");
    }

    public void addRequestTypeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementRelateDAO.RequestType, aAlias);
        } else {
            addSelectProperty(IProductRequirementRelateDAO.RequestType,
                "requestType");
        }
    }

    public void addRelatedRequestCodeSelectProperty() {
        addRelatedRequestCodeSelectProperty("relatedRequestCode");
    }

    public void addRelatedRequestCodeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementRelateDAO.RelatedRequestCode,
                aAlias);
        } else {
            addSelectProperty(IProductRequirementRelateDAO.RelatedRequestCode,
                "relatedRequestCode");
        }
    }

    public void addRelatedRequestNameSelectProperty() {
        addRelatedRequestNameSelectProperty("relatedRequestName");
    }

    public void addRelatedRequestNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementRelateDAO.RelatedRequestName,
                aAlias);
        } else {
            addSelectProperty(IProductRequirementRelateDAO.RelatedRequestName,
                "relatedRequestName");
        }
    }

    public void addRelatedRequestContentSelectProperty() {
        addRelatedRequestContentSelectProperty("relatedRequestContent");
    }

    public void addRelatedRequestContentSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementRelateDAO.RelatedRequestContent,
                aAlias);
        } else {
            addSelectProperty(IProductRequirementRelateDAO.RelatedRequestContent,
                "relatedRequestContent");
        }
    }

    public void addRelatedRequestLevelSelectProperty() {
        addRelatedRequestLevelSelectProperty("relatedRequestLevel");
    }

    public void addRelatedRequestLevelSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementRelateDAO.RelatedRequestLevel,
                aAlias);
        } else {
            addSelectProperty(IProductRequirementRelateDAO.RelatedRequestLevel,
                "relatedRequestLevel");
        }
    }

    public void addRelatedRequestStatusSelectProperty() {
        addRelatedRequestStatusSelectProperty("relatedRequestStatus");
    }

    public void addRelatedRequestStatusSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementRelateDAO.RelatedRequestStatus,
                aAlias);
        } else {
            addSelectProperty(IProductRequirementRelateDAO.RelatedRequestStatus,
                "relatedRequestStatus");
        }
    }

    public void addRelatedRequestTypeSelectProperty() {
        addRelatedRequestTypeSelectProperty("relatedRequestType");
    }

    public void addRelatedRequestTypeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductRequirementRelateDAO.RelatedRequestType,
                aAlias);
        } else {
            addSelectProperty(IProductRequirementRelateDAO.RelatedRequestType,
                "relatedRequestType");
        }
    }

    public void addAllSelectProperties() {
        addIdSelectProperty();

        addRequirementIdSelectProperty();

        addRelatedRequirementIdSelectProperty();

        addRelatedTypeSelectProperty();

        addStatusSelectProperty();

        addRemarksSelectProperty();

        addRequestCodeSelectProperty();

        addRequestNameSelectProperty();

        addRequestContentSelectProperty();

        addRequestLevelSelectProperty();

        addRequestStatusSelectProperty();

        addRequestTypeSelectProperty();

        addRelatedRequestCodeSelectProperty();

        addRelatedRequestNameSelectProperty();

        addRelatedRequestContentSelectProperty();

        addRelatedRequestLevelSelectProperty();

        addRelatedRequestStatusSelectProperty();

        addRelatedRequestTypeSelectProperty();
    }

    public static class Criteria extends BaseWhereCriterion<ProductRequirementRelateDAOQueryBean> {
        protected Criteria(ProductRequirementRelateDAOQueryBean aParentObject) {
            super(aParentObject);
        }

        public Criteria andIdIsNull() {
            addCriterion(IProductRequirementRelateDAO.Id + " is null");

            return this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion(IProductRequirementRelateDAO.Id + " is not null");

            return this;
        }

        public Criteria andIdIsNotEmpty() {
            addCriterion(IProductRequirementRelateDAO.Id + " is not null AND " +
                IProductRequirementRelateDAO.Id + " <> ''");

            return this;
        }

        public Criteria andIdIsEmpty() {
            addCriterion("(" + IProductRequirementRelateDAO.Id +
                " is null OR " + IProductRequirementRelateDAO.Id + " = '')");

            return this;
        }

        public Criteria andIdEqualTo(long value) {
            return andIdEqualTo(Long.valueOf(value));
        }

        public Criteria andIdEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementRelateDAO.Id + " = ", value, "id");

            return this;
        }

        public Criteria andIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.Id);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.Id + " = ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIdNotEqualTo(long value) {
            return andIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementRelateDAO.Id + " <>", value, "id");

            return this;
        }

        public Criteria andIdNotEqualToOrIsNull(long value) {
            return andIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductRequirementRelateDAO.Id + " is null OR " +
                IProductRequirementRelateDAO.Id + " <>", value, "id");

            return this;
        }

        public Criteria andIdNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.Id);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.Id + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdGreaterThan(long value) {
            return andIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductRequirementRelateDAO.Id + " >", value, "id");

            return this;
        }

        public Criteria andIdGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.Id);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.Id + " > ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIdGreaterThanOrEqualTo(long value) {
            return andIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIdGreaterThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementRelateDAO.Id + " >=", value, "id");

            return this;
        }

        public Criteria andIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.Id);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdGreaterThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.Id + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdLessThan(long value) {
            return andIdLessThan(Long.valueOf(value));
        }

        public Criteria andIdLessThan(java.lang.Long value) {
            addCriterion(IProductRequirementRelateDAO.Id + " <", value, "id");

            return this;
        }

        public Criteria andIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.Id);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.Id + " < ", subQueryBean,
                dao);

            return this;
        }

        public Criteria andIdLessThanOrEqualTo(long value) {
            return andIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementRelateDAO.Id + " <=", value, "id");

            return this;
        }

        public Criteria andIdLessThanOrEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.Id);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdLessThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.Id + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdIn(long[] values) {
            if (values.length == 1) {
                return andIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.Id + " in", values,
                    "id");

                return this;
            }
        }

        public Criteria andIdNotIn(long[] values) {
            if (values.length == 1) {
                return andIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.Id + " not in",
                    values, "id");

                return this;
            }
        }

        public Criteria andIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.Id + " in", values,
                    "id");

                return this;
            }
        }

        public Criteria andIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.Id + " not in",
                    values, "id");

                return this;
            }
        }

        public Criteria andIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIdEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.Id + " in",
                    Arrays.asList(values), "id");

                return this;
            }
        }

        public Criteria andIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.Id + " not in",
                    Arrays.asList(values), "id");

                return this;
            }
        }

        public Criteria andIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.Id + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.Id + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdBetween(long value1, long value2) {
            addCriterion(IProductRequirementRelateDAO.Id + " between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductRequirementRelateDAO.Id + " between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdNotBetween(long value1, long value2) {
            addCriterion(IProductRequirementRelateDAO.Id + " not between",
                value1, value2, "id");

            return this;
        }

        public Criteria andIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductRequirementRelateDAO.Id + " not between",
                value1, value2, "id");

            return this;
        }

        public Criteria andRequirementIdIsNull() {
            addCriterion(IProductRequirementRelateDAO.RequirementId +
                " is null");

            return this;
        }

        public Criteria andRequirementIdIsNotNull() {
            addCriterion(IProductRequirementRelateDAO.RequirementId +
                " is not null");

            return this;
        }

        public Criteria andRequirementIdIsNotEmpty() {
            addCriterion(IProductRequirementRelateDAO.RequirementId +
                " is not null AND " +
                IProductRequirementRelateDAO.RequirementId + " <> ''");

            return this;
        }

        public Criteria andRequirementIdIsEmpty() {
            addCriterion("(" + IProductRequirementRelateDAO.RequirementId +
                " is null OR " + IProductRequirementRelateDAO.RequirementId +
                " = '')");

            return this;
        }

        public Criteria andRequirementIdEqualTo(long value) {
            return andRequirementIdEqualTo(Long.valueOf(value));
        }

        public Criteria andRequirementIdEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementRelateDAO.RequirementId + " = ",
                value, "requirementId");

            return this;
        }

        public Criteria andRequirementIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequirementId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequirementIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequirementId + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequirementIdNotEqualTo(long value) {
            return andRequirementIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andRequirementIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementRelateDAO.RequirementId + " <>",
                value, "requirementId");

            return this;
        }

        public Criteria andRequirementIdNotEqualToOrIsNull(long value) {
            return andRequirementIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andRequirementIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductRequirementRelateDAO.RequirementId +
                " is null OR " + IProductRequirementRelateDAO.RequirementId +
                " <>", value, "requirementId");

            return this;
        }

        public Criteria andRequirementIdNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequirementId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequirementIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequirementId + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequirementIdGreaterThan(long value) {
            return andRequirementIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andRequirementIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductRequirementRelateDAO.RequirementId + " >",
                value, "requirementId");

            return this;
        }

        public Criteria andRequirementIdGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequirementId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequirementIdGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequirementId + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequirementIdGreaterThanOrEqualTo(long value) {
            return andRequirementIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andRequirementIdGreaterThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductRequirementRelateDAO.RequirementId + " >=",
                value, "requirementId");

            return this;
        }

        public Criteria andRequirementIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequirementId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequirementIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequirementId + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequirementIdLessThan(long value) {
            return andRequirementIdLessThan(Long.valueOf(value));
        }

        public Criteria andRequirementIdLessThan(java.lang.Long value) {
            addCriterion(IProductRequirementRelateDAO.RequirementId + " <",
                value, "requirementId");

            return this;
        }

        public Criteria andRequirementIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequirementId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequirementIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequirementId + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequirementIdLessThanOrEqualTo(long value) {
            return andRequirementIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andRequirementIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementRelateDAO.RequirementId + " <=",
                value, "requirementId");

            return this;
        }

        public Criteria andRequirementIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequirementId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequirementIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequirementId + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequirementIdIn(long[] values) {
            if (values.length == 1) {
                return andRequirementIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RequirementId +
                    " in", values, "requirementId");

                return this;
            }
        }

        public Criteria andRequirementIdNotIn(long[] values) {
            if (values.length == 1) {
                return andRequirementIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RequirementId +
                    " not in", values, "requirementId");

                return this;
            }
        }

        public Criteria andRequirementIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andRequirementIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RequirementId +
                    " in", values, "requirementId");

                return this;
            }
        }

        public Criteria andRequirementIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andRequirementIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RequirementId +
                    " not in", values, "requirementId");

                return this;
            }
        }

        public Criteria andRequirementIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andRequirementIdEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RequirementId +
                    " in", Arrays.asList(values), "requirementId");

                return this;
            }
        }

        public Criteria andRequirementIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andRequirementIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RequirementId +
                    " not in", Arrays.asList(values), "requirementId");

                return this;
            }
        }

        public Criteria andRequirementIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequirementId + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequirementIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequirementId +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRequirementIdBetween(long value1, long value2) {
            addCriterion(IProductRequirementRelateDAO.RequirementId +
                " between", value1, value2, "requirementId");

            return this;
        }

        public Criteria andRequirementIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductRequirementRelateDAO.RequirementId +
                " between", value1, value2, "requirementId");

            return this;
        }

        public Criteria andRequirementIdNotBetween(long value1, long value2) {
            addCriterion(IProductRequirementRelateDAO.RequirementId +
                " not between", value1, value2, "requirementId");

            return this;
        }

        public Criteria andRequirementIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductRequirementRelateDAO.RequirementId +
                " not between", value1, value2, "requirementId");

            return this;
        }

        public Criteria andRelatedRequirementIdIsNull() {
            addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                " is null");

            return this;
        }

        public Criteria andRelatedRequirementIdIsNotNull() {
            addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                " is not null");

            return this;
        }

        public Criteria andRelatedRequirementIdIsNotEmpty() {
            addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                " is not null AND " +
                IProductRequirementRelateDAO.RelatedRequirementId + " <> ''");

            return this;
        }

        public Criteria andRelatedRequirementIdIsEmpty() {
            addCriterion("(" +
                IProductRequirementRelateDAO.RelatedRequirementId +
                " is null OR " +
                IProductRequirementRelateDAO.RelatedRequirementId + " = '')");

            return this;
        }

        public Criteria andRelatedRequirementIdEqualTo(long value) {
            return andRelatedRequirementIdEqualTo(Long.valueOf(value));
        }

        public Criteria andRelatedRequirementIdEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                " = ", value, "relatedRequirementId");

            return this;
        }

        public Criteria andRelatedRequirementIdEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequirementId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequirementIdEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequirementIdNotEqualTo(long value) {
            return andRelatedRequirementIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andRelatedRequirementIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                " <>", value, "relatedRequirementId");

            return this;
        }

        public Criteria andRelatedRequirementIdNotEqualToOrIsNull(long value) {
            return andRelatedRequirementIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andRelatedRequirementIdNotEqualToOrIsNull(
            java.lang.Long value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                " is null OR " +
                IProductRequirementRelateDAO.RelatedRequirementId + " <>",
                value, "relatedRequirementId");

            return this;
        }

        public Criteria andRelatedRequirementIdNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequirementId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequirementIdNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequirementIdGreaterThan(long value) {
            return andRelatedRequirementIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andRelatedRequirementIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                " >", value, "relatedRequirementId");

            return this;
        }

        public Criteria andRelatedRequirementIdGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequirementId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequirementIdGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequirementIdGreaterThanOrEqualTo(long value) {
            return andRelatedRequirementIdGreaterThanOrEqualTo(Long.valueOf(
                    value));
        }

        public Criteria andRelatedRequirementIdGreaterThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                " >=", value, "relatedRequirementId");

            return this;
        }

        public Criteria andRelatedRequirementIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequirementId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequirementIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequirementIdLessThan(long value) {
            return andRelatedRequirementIdLessThan(Long.valueOf(value));
        }

        public Criteria andRelatedRequirementIdLessThan(java.lang.Long value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                " <", value, "relatedRequirementId");

            return this;
        }

        public Criteria andRelatedRequirementIdLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequirementId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequirementIdLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequirementIdLessThanOrEqualTo(long value) {
            return andRelatedRequirementIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andRelatedRequirementIdLessThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                " <=", value, "relatedRequirementId");

            return this;
        }

        public Criteria andRelatedRequirementIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequirementId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequirementIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequirementIdIn(long[] values) {
            if (values.length == 1) {
                return andRelatedRequirementIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                    " in", values, "relatedRequirementId");

                return this;
            }
        }

        public Criteria andRelatedRequirementIdNotIn(long[] values) {
            if (values.length == 1) {
                return andRelatedRequirementIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                    " not in", values, "relatedRequirementId");

                return this;
            }
        }

        public Criteria andRelatedRequirementIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andRelatedRequirementIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                    " in", values, "relatedRequirementId");

                return this;
            }
        }

        public Criteria andRelatedRequirementIdNotIn(
            List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andRelatedRequirementIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                    " not in", values, "relatedRequirementId");

                return this;
            }
        }

        public Criteria andRelatedRequirementIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andRelatedRequirementIdEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                    " in", Arrays.asList(values), "relatedRequirementId");

                return this;
            }
        }

        public Criteria andRelatedRequirementIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andRelatedRequirementIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                    " not in", Arrays.asList(values), "relatedRequirementId");

                return this;
            }
        }

        public Criteria andRelatedRequirementIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequirementIdNotIn(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequirementIdBetween(long value1, long value2) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                " between", value1, value2, "relatedRequirementId");

            return this;
        }

        public Criteria andRelatedRequirementIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                " between", value1, value2, "relatedRequirementId");

            return this;
        }

        public Criteria andRelatedRequirementIdNotBetween(long value1,
            long value2) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                " not between", value1, value2, "relatedRequirementId");

            return this;
        }

        public Criteria andRelatedRequirementIdNotBetween(
            java.lang.Long value1, java.lang.Long value2) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequirementId +
                " not between", value1, value2, "relatedRequirementId");

            return this;
        }

        public Criteria andRelatedTypeIsNull() {
            addCriterion(IProductRequirementRelateDAO.RelatedType + " is null");

            return this;
        }

        public Criteria andRelatedTypeIsNotNull() {
            addCriterion(IProductRequirementRelateDAO.RelatedType +
                " is not null");

            return this;
        }

        public Criteria andRelatedTypeIsNotEmpty() {
            addCriterion(IProductRequirementRelateDAO.RelatedType +
                " is not null AND " + IProductRequirementRelateDAO.RelatedType +
                " <> ''");

            return this;
        }

        public Criteria andRelatedTypeIsEmpty() {
            addCriterion("(" + IProductRequirementRelateDAO.RelatedType +
                " is null OR " + IProductRequirementRelateDAO.RelatedType +
                " = '')");

            return this;
        }

        public Criteria andRelatedTypeEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedType + " = ",
                value, "relatedType");

            return this;
        }

        public Criteria andRelatedTypeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedType);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedTypeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedType + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedTypeNotEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedType + " <>",
                value, "relatedType");

            return this;
        }

        public Criteria andRelatedTypeNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedType +
                " is null OR " + IProductRequirementRelateDAO.RelatedType +
                " <>", value, "relatedType");

            return this;
        }

        public Criteria andRelatedTypeNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedType);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedTypeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedType + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedTypeGreaterThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedType + " >",
                value, "relatedType");

            return this;
        }

        public Criteria andRelatedTypeGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedType);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedTypeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedType + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedTypeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedType + " >=",
                value, "relatedType");

            return this;
        }

        public Criteria andRelatedTypeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedType);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedTypeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedType + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedTypeLessThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedType + " <",
                value, "relatedType");

            return this;
        }

        public Criteria andRelatedTypeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedType);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedTypeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedType + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedTypeLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedType + " <=",
                value, "relatedType");

            return this;
        }

        public Criteria andRelatedTypeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedType);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedTypeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedType + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedTypeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RelatedType + " like",
                buffer.toString(), "relatedType");

            return this;
        }

        public Criteria andRelatedTypeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RelatedType +
                " not like", buffer.toString(), "relatedType");

            return this;
        }

        public Criteria andRelatedTypeIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedTypeEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedType + " in",
                    values, "relatedType");

                return this;
            }
        }

        public Criteria andRelatedTypeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedTypeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedType +
                    " not in", values, "relatedType");

                return this;
            }
        }

        public Criteria andRelatedTypeIn(String[] values) {
            if (values.length == 1) {
                return andRelatedTypeEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedType + " in",
                    Arrays.asList(values), "relatedType");

                return this;
            }
        }

        public Criteria andRelatedTypeNotIn(String[] values) {
            if (values.length == 1) {
                return andRelatedTypeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedType +
                    " not in", Arrays.asList(values), "relatedType");

                return this;
            }
        }

        public Criteria andRelatedTypeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedType + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedTypeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedType + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedTypeBetween(String value1, String value2) {
            addCriterion(IProductRequirementRelateDAO.RelatedType + " between",
                value1, value2, "relatedType");

            return this;
        }

        public Criteria andRelatedTypeNotBetween(String value1, String value2) {
            addCriterion(IProductRequirementRelateDAO.RelatedType +
                " not between", value1, value2, "relatedType");

            return this;
        }

        public Criteria andStatusIsNull() {
            addCriterion(IProductRequirementRelateDAO.Status + " is null");

            return this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion(IProductRequirementRelateDAO.Status + " is not null");

            return this;
        }

        public Criteria andStatusIsNotEmpty() {
            addCriterion(IProductRequirementRelateDAO.Status +
                " is not null AND " + IProductRequirementRelateDAO.Status +
                " <> ''");

            return this;
        }

        public Criteria andStatusIsEmpty() {
            addCriterion("(" + IProductRequirementRelateDAO.Status +
                " is null OR " + IProductRequirementRelateDAO.Status +
                " = '')");

            return this;
        }

        public Criteria andStatusEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.Status + " = ", value,
                "status");

            return this;
        }

        public Criteria andStatusEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.Status);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.Status + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusNotEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.Status + " <>", value,
                "status");

            return this;
        }

        public Criteria andStatusNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementRelateDAO.Status + " is null OR " +
                IProductRequirementRelateDAO.Status + " <>", value, "status");

            return this;
        }

        public Criteria andStatusNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.Status);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.Status + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusGreaterThan(String value) {
            addCriterion(IProductRequirementRelateDAO.Status + " >", value,
                "status");

            return this;
        }

        public Criteria andStatusGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.Status);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.Status + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.Status + " >=", value,
                "status");

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.Status);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.Status + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusLessThan(String value) {
            addCriterion(IProductRequirementRelateDAO.Status + " <", value,
                "status");

            return this;
        }

        public Criteria andStatusLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.Status);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.Status + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.Status + " <=", value,
                "status");

            return this;
        }

        public Criteria andStatusLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.Status);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusLessThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.Status + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.Status + " like",
                buffer.toString(), "status");

            return this;
        }

        public Criteria andStatusNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.Status + " not like",
                buffer.toString(), "status");

            return this;
        }

        public Criteria andStatusIn(List<String> values) {
            if (values.size() == 1) {
                return andStatusEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.Status + " in",
                    values, "status");

                return this;
            }
        }

        public Criteria andStatusNotIn(List<String> values) {
            if (values.size() == 1) {
                return andStatusNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.Status + " not in",
                    values, "status");

                return this;
            }
        }

        public Criteria andStatusIn(String[] values) {
            if (values.length == 1) {
                return andStatusEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.Status + " in",
                    Arrays.asList(values), "status");

                return this;
            }
        }

        public Criteria andStatusNotIn(String[] values) {
            if (values.length == 1) {
                return andStatusNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.Status + " not in",
                    Arrays.asList(values), "status");

                return this;
            }
        }

        public Criteria andStatusIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.Status + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.Status + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusBetween(String value1, String value2) {
            addCriterion(IProductRequirementRelateDAO.Status + " between",
                value1, value2, "status");

            return this;
        }

        public Criteria andStatusNotBetween(String value1, String value2) {
            addCriterion(IProductRequirementRelateDAO.Status + " not between",
                value1, value2, "status");

            return this;
        }

        public Criteria andRemarksIsNull() {
            addCriterion(IProductRequirementRelateDAO.Remarks + " is null");

            return this;
        }

        public Criteria andRemarksIsNotNull() {
            addCriterion(IProductRequirementRelateDAO.Remarks + " is not null");

            return this;
        }

        public Criteria andRemarksIsNotEmpty() {
            addCriterion(IProductRequirementRelateDAO.Remarks +
                " is not null AND " + IProductRequirementRelateDAO.Remarks +
                " <> ''");

            return this;
        }

        public Criteria andRemarksIsEmpty() {
            addCriterion("(" + IProductRequirementRelateDAO.Remarks +
                " is null OR " + IProductRequirementRelateDAO.Remarks +
                " = '')");

            return this;
        }

        public Criteria andRemarksEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.Remarks + " = ", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.Remarks);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.Remarks + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksNotEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.Remarks + " <>", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementRelateDAO.Remarks + " is null OR " +
                IProductRequirementRelateDAO.Remarks + " <>", value, "remarks");

            return this;
        }

        public Criteria andRemarksNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.Remarks);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.Remarks + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksGreaterThan(String value) {
            addCriterion(IProductRequirementRelateDAO.Remarks + " >", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.Remarks);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.Remarks + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.Remarks + " >=", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.Remarks);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.Remarks + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksLessThan(String value) {
            addCriterion(IProductRequirementRelateDAO.Remarks + " <", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.Remarks);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.Remarks + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.Remarks + " <=", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.Remarks);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.Remarks + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.Remarks + " like",
                buffer.toString(), "remarks");

            return this;
        }

        public Criteria andRemarksNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.Remarks + " not like",
                buffer.toString(), "remarks");

            return this;
        }

        public Criteria andRemarksIn(List<String> values) {
            if (values.size() == 1) {
                return andRemarksEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.Remarks + " in",
                    values, "remarks");

                return this;
            }
        }

        public Criteria andRemarksNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRemarksNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.Remarks + " not in",
                    values, "remarks");

                return this;
            }
        }

        public Criteria andRemarksIn(String[] values) {
            if (values.length == 1) {
                return andRemarksEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.Remarks + " in",
                    Arrays.asList(values), "remarks");

                return this;
            }
        }

        public Criteria andRemarksNotIn(String[] values) {
            if (values.length == 1) {
                return andRemarksNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.Remarks + " not in",
                    Arrays.asList(values), "remarks");

                return this;
            }
        }

        public Criteria andRemarksIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.Remarks + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.Remarks + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksBetween(String value1, String value2) {
            addCriterion(IProductRequirementRelateDAO.Remarks + " between",
                value1, value2, "remarks");

            return this;
        }

        public Criteria andRemarksNotBetween(String value1, String value2) {
            addCriterion(IProductRequirementRelateDAO.Remarks + " not between",
                value1, value2, "remarks");

            return this;
        }

        public Criteria andRequestCodeIsNull() {
            addCriterion(IProductRequirementRelateDAO.RequestCode + " is null");

            return this;
        }

        public Criteria andRequestCodeIsNotNull() {
            addCriterion(IProductRequirementRelateDAO.RequestCode +
                " is not null");

            return this;
        }

        public Criteria andRequestCodeIsNotEmpty() {
            addCriterion(IProductRequirementRelateDAO.RequestCode +
                " is not null AND " + IProductRequirementRelateDAO.RequestCode +
                " <> ''");

            return this;
        }

        public Criteria andRequestCodeIsEmpty() {
            addCriterion("(" + IProductRequirementRelateDAO.RequestCode +
                " is null OR " + IProductRequirementRelateDAO.RequestCode +
                " = '')");

            return this;
        }

        public Criteria andRequestCodeEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestCode + " = ",
                value, "requestCode");

            return this;
        }

        public Criteria andRequestCodeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestCode);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestCodeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestCode + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestCodeNotEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestCode + " <>",
                value, "requestCode");

            return this;
        }

        public Criteria andRequestCodeNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestCode +
                " is null OR " + IProductRequirementRelateDAO.RequestCode +
                " <>", value, "requestCode");

            return this;
        }

        public Criteria andRequestCodeNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestCode);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestCodeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestCode + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestCodeGreaterThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestCode + " >",
                value, "requestCode");

            return this;
        }

        public Criteria andRequestCodeGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestCode);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestCodeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestCode + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestCodeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestCode + " >=",
                value, "requestCode");

            return this;
        }

        public Criteria andRequestCodeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestCode);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestCodeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestCode + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestCodeLessThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestCode + " <",
                value, "requestCode");

            return this;
        }

        public Criteria andRequestCodeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestCode);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestCodeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestCode + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestCodeLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestCode + " <=",
                value, "requestCode");

            return this;
        }

        public Criteria andRequestCodeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestCode);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestCodeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestCode + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestCodeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RequestCode + " like",
                buffer.toString(), "requestCode");

            return this;
        }

        public Criteria andRequestCodeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RequestCode +
                " not like", buffer.toString(), "requestCode");

            return this;
        }

        public Criteria andRequestCodeIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestCodeEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RequestCode + " in",
                    values, "requestCode");

                return this;
            }
        }

        public Criteria andRequestCodeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestCodeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RequestCode +
                    " not in", values, "requestCode");

                return this;
            }
        }

        public Criteria andRequestCodeIn(String[] values) {
            if (values.length == 1) {
                return andRequestCodeEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RequestCode + " in",
                    Arrays.asList(values), "requestCode");

                return this;
            }
        }

        public Criteria andRequestCodeNotIn(String[] values) {
            if (values.length == 1) {
                return andRequestCodeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RequestCode +
                    " not in", Arrays.asList(values), "requestCode");

                return this;
            }
        }

        public Criteria andRequestCodeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestCode + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestCodeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestCode + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestCodeBetween(String value1, String value2) {
            addCriterion(IProductRequirementRelateDAO.RequestCode + " between",
                value1, value2, "requestCode");

            return this;
        }

        public Criteria andRequestCodeNotBetween(String value1, String value2) {
            addCriterion(IProductRequirementRelateDAO.RequestCode +
                " not between", value1, value2, "requestCode");

            return this;
        }

        public Criteria andRequestNameIsNull() {
            addCriterion(IProductRequirementRelateDAO.RequestName + " is null");

            return this;
        }

        public Criteria andRequestNameIsNotNull() {
            addCriterion(IProductRequirementRelateDAO.RequestName +
                " is not null");

            return this;
        }

        public Criteria andRequestNameIsNotEmpty() {
            addCriterion(IProductRequirementRelateDAO.RequestName +
                " is not null AND " + IProductRequirementRelateDAO.RequestName +
                " <> ''");

            return this;
        }

        public Criteria andRequestNameIsEmpty() {
            addCriterion("(" + IProductRequirementRelateDAO.RequestName +
                " is null OR " + IProductRequirementRelateDAO.RequestName +
                " = '')");

            return this;
        }

        public Criteria andRequestNameEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestName + " = ",
                value, "requestName");

            return this;
        }

        public Criteria andRequestNameEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestNameEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestName + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestNameNotEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestName + " <>",
                value, "requestName");

            return this;
        }

        public Criteria andRequestNameNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestName +
                " is null OR " + IProductRequirementRelateDAO.RequestName +
                " <>", value, "requestName");

            return this;
        }

        public Criteria andRequestNameNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestNameNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestName + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestNameGreaterThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestName + " >",
                value, "requestName");

            return this;
        }

        public Criteria andRequestNameGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestNameGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestName + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestNameGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestName + " >=",
                value, "requestName");

            return this;
        }

        public Criteria andRequestNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestName + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestNameLessThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestName + " <",
                value, "requestName");

            return this;
        }

        public Criteria andRequestNameLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestNameLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestName + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestNameLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestName + " <=",
                value, "requestName");

            return this;
        }

        public Criteria andRequestNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestName + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RequestName + " like",
                buffer.toString(), "requestName");

            return this;
        }

        public Criteria andRequestNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RequestName +
                " not like", buffer.toString(), "requestName");

            return this;
        }

        public Criteria andRequestNameIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RequestName + " in",
                    values, "requestName");

                return this;
            }
        }

        public Criteria andRequestNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RequestName +
                    " not in", values, "requestName");

                return this;
            }
        }

        public Criteria andRequestNameIn(String[] values) {
            if (values.length == 1) {
                return andRequestNameEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RequestName + " in",
                    Arrays.asList(values), "requestName");

                return this;
            }
        }

        public Criteria andRequestNameNotIn(String[] values) {
            if (values.length == 1) {
                return andRequestNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RequestName +
                    " not in", Arrays.asList(values), "requestName");

                return this;
            }
        }

        public Criteria andRequestNameIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestName + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestNameNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestName + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestNameBetween(String value1, String value2) {
            addCriterion(IProductRequirementRelateDAO.RequestName + " between",
                value1, value2, "requestName");

            return this;
        }

        public Criteria andRequestNameNotBetween(String value1, String value2) {
            addCriterion(IProductRequirementRelateDAO.RequestName +
                " not between", value1, value2, "requestName");

            return this;
        }

        public Criteria andRequestContentIsNull() {
            addCriterion(IProductRequirementRelateDAO.RequestContent +
                " is null");

            return this;
        }

        public Criteria andRequestContentIsNotNull() {
            addCriterion(IProductRequirementRelateDAO.RequestContent +
                " is not null");

            return this;
        }

        public Criteria andRequestContentIsNotEmpty() {
            addCriterion(IProductRequirementRelateDAO.RequestContent +
                " is not null AND " +
                IProductRequirementRelateDAO.RequestContent + " <> ''");

            return this;
        }

        public Criteria andRequestContentIsEmpty() {
            addCriterion("(" + IProductRequirementRelateDAO.RequestContent +
                " is null OR " + IProductRequirementRelateDAO.RequestContent +
                " = '')");

            return this;
        }

        public Criteria andRequestContentEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestContent + " = ",
                value, "requestContent");

            return this;
        }

        public Criteria andRequestContentEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestContent);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestContentEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestContent + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestContentNotEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestContent + " <>",
                value, "requestContent");

            return this;
        }

        public Criteria andRequestContentNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestContent +
                " is null OR " + IProductRequirementRelateDAO.RequestContent +
                " <>", value, "requestContent");

            return this;
        }

        public Criteria andRequestContentNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestContent);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestContentNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestContent + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestContentGreaterThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestContent + " >",
                value, "requestContent");

            return this;
        }

        public Criteria andRequestContentGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestContent);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestContentGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestContent + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestContentGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestContent + " >=",
                value, "requestContent");

            return this;
        }

        public Criteria andRequestContentGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestContent);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestContentGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestContent + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestContentLessThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestContent + " <",
                value, "requestContent");

            return this;
        }

        public Criteria andRequestContentLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestContent);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestContentLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestContent + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestContentLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestContent + " <=",
                value, "requestContent");

            return this;
        }

        public Criteria andRequestContentLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestContent);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestContentLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestContent + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestContentLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RequestContent + " like",
                buffer.toString(), "requestContent");

            return this;
        }

        public Criteria andRequestContentNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RequestContent +
                " not like", buffer.toString(), "requestContent");

            return this;
        }

        public Criteria andRequestContentIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestContentEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RequestContent +
                    " in", values, "requestContent");

                return this;
            }
        }

        public Criteria andRequestContentNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestContentNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RequestContent +
                    " not in", values, "requestContent");

                return this;
            }
        }

        public Criteria andRequestContentIn(String[] values) {
            if (values.length == 1) {
                return andRequestContentEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RequestContent +
                    " in", Arrays.asList(values), "requestContent");

                return this;
            }
        }

        public Criteria andRequestContentNotIn(String[] values) {
            if (values.length == 1) {
                return andRequestContentNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RequestContent +
                    " not in", Arrays.asList(values), "requestContent");

                return this;
            }
        }

        public Criteria andRequestContentIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestContent + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestContentNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestContent +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRequestContentBetween(String value1, String value2) {
            addCriterion(IProductRequirementRelateDAO.RequestContent +
                " between", value1, value2, "requestContent");

            return this;
        }

        public Criteria andRequestContentNotBetween(String value1, String value2) {
            addCriterion(IProductRequirementRelateDAO.RequestContent +
                " not between", value1, value2, "requestContent");

            return this;
        }

        public Criteria andRequestLevelIsNull() {
            addCriterion(IProductRequirementRelateDAO.RequestLevel +
                " is null");

            return this;
        }

        public Criteria andRequestLevelIsNotNull() {
            addCriterion(IProductRequirementRelateDAO.RequestLevel +
                " is not null");

            return this;
        }

        public Criteria andRequestLevelIsNotEmpty() {
            addCriterion(IProductRequirementRelateDAO.RequestLevel +
                " is not null AND " +
                IProductRequirementRelateDAO.RequestLevel + " <> ''");

            return this;
        }

        public Criteria andRequestLevelIsEmpty() {
            addCriterion("(" + IProductRequirementRelateDAO.RequestLevel +
                " is null OR " + IProductRequirementRelateDAO.RequestLevel +
                " = '')");

            return this;
        }

        public Criteria andRequestLevelEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestLevel + " = ",
                value, "requestLevel");

            return this;
        }

        public Criteria andRequestLevelEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestLevel);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestLevelEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestLevel + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestLevelNotEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestLevel + " <>",
                value, "requestLevel");

            return this;
        }

        public Criteria andRequestLevelNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestLevel +
                " is null OR " + IProductRequirementRelateDAO.RequestLevel +
                " <>", value, "requestLevel");

            return this;
        }

        public Criteria andRequestLevelNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestLevel);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestLevelNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestLevel + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestLevelGreaterThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestLevel + " >",
                value, "requestLevel");

            return this;
        }

        public Criteria andRequestLevelGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestLevel);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestLevelGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestLevel + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestLevelGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestLevel + " >=",
                value, "requestLevel");

            return this;
        }

        public Criteria andRequestLevelGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestLevel);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestLevelGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestLevel + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestLevelLessThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestLevel + " <",
                value, "requestLevel");

            return this;
        }

        public Criteria andRequestLevelLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestLevel);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestLevelLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestLevel + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestLevelLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestLevel + " <=",
                value, "requestLevel");

            return this;
        }

        public Criteria andRequestLevelLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestLevel);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestLevelLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestLevel + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestLevelLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RequestLevel + " like",
                buffer.toString(), "requestLevel");

            return this;
        }

        public Criteria andRequestLevelNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RequestLevel +
                " not like", buffer.toString(), "requestLevel");

            return this;
        }

        public Criteria andRequestLevelIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestLevelEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RequestLevel + " in",
                    values, "requestLevel");

                return this;
            }
        }

        public Criteria andRequestLevelNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestLevelNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RequestLevel +
                    " not in", values, "requestLevel");

                return this;
            }
        }

        public Criteria andRequestLevelIn(String[] values) {
            if (values.length == 1) {
                return andRequestLevelEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RequestLevel + " in",
                    Arrays.asList(values), "requestLevel");

                return this;
            }
        }

        public Criteria andRequestLevelNotIn(String[] values) {
            if (values.length == 1) {
                return andRequestLevelNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RequestLevel +
                    " not in", Arrays.asList(values), "requestLevel");

                return this;
            }
        }

        public Criteria andRequestLevelIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestLevel + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestLevelNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestLevel +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRequestLevelBetween(String value1, String value2) {
            addCriterion(IProductRequirementRelateDAO.RequestLevel +
                " between", value1, value2, "requestLevel");

            return this;
        }

        public Criteria andRequestLevelNotBetween(String value1, String value2) {
            addCriterion(IProductRequirementRelateDAO.RequestLevel +
                " not between", value1, value2, "requestLevel");

            return this;
        }

        public Criteria andRequestStatusIsNull() {
            addCriterion(IProductRequirementRelateDAO.RequestStatus +
                " is null");

            return this;
        }

        public Criteria andRequestStatusIsNotNull() {
            addCriterion(IProductRequirementRelateDAO.RequestStatus +
                " is not null");

            return this;
        }

        public Criteria andRequestStatusIsNotEmpty() {
            addCriterion(IProductRequirementRelateDAO.RequestStatus +
                " is not null AND " +
                IProductRequirementRelateDAO.RequestStatus + " <> ''");

            return this;
        }

        public Criteria andRequestStatusIsEmpty() {
            addCriterion("(" + IProductRequirementRelateDAO.RequestStatus +
                " is null OR " + IProductRequirementRelateDAO.RequestStatus +
                " = '')");

            return this;
        }

        public Criteria andRequestStatusEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestStatus + " = ",
                value, "requestStatus");

            return this;
        }

        public Criteria andRequestStatusEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestStatus);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestStatusEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestStatus + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestStatusNotEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestStatus + " <>",
                value, "requestStatus");

            return this;
        }

        public Criteria andRequestStatusNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestStatus +
                " is null OR " + IProductRequirementRelateDAO.RequestStatus +
                " <>", value, "requestStatus");

            return this;
        }

        public Criteria andRequestStatusNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestStatus);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestStatusNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestStatus + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestStatusGreaterThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestStatus + " >",
                value, "requestStatus");

            return this;
        }

        public Criteria andRequestStatusGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestStatus);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestStatusGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestStatus + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestStatusGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestStatus + " >=",
                value, "requestStatus");

            return this;
        }

        public Criteria andRequestStatusGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestStatus);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestStatusGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestStatus + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestStatusLessThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestStatus + " <",
                value, "requestStatus");

            return this;
        }

        public Criteria andRequestStatusLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestStatus);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestStatusLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestStatus + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestStatusLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestStatus + " <=",
                value, "requestStatus");

            return this;
        }

        public Criteria andRequestStatusLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestStatus);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestStatusLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestStatus + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestStatusLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RequestStatus + " like",
                buffer.toString(), "requestStatus");

            return this;
        }

        public Criteria andRequestStatusNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RequestStatus +
                " not like", buffer.toString(), "requestStatus");

            return this;
        }

        public Criteria andRequestStatusIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestStatusEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RequestStatus +
                    " in", values, "requestStatus");

                return this;
            }
        }

        public Criteria andRequestStatusNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestStatusNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RequestStatus +
                    " not in", values, "requestStatus");

                return this;
            }
        }

        public Criteria andRequestStatusIn(String[] values) {
            if (values.length == 1) {
                return andRequestStatusEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RequestStatus +
                    " in", Arrays.asList(values), "requestStatus");

                return this;
            }
        }

        public Criteria andRequestStatusNotIn(String[] values) {
            if (values.length == 1) {
                return andRequestStatusNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RequestStatus +
                    " not in", Arrays.asList(values), "requestStatus");

                return this;
            }
        }

        public Criteria andRequestStatusIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestStatus + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestStatusNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestStatus +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRequestStatusBetween(String value1, String value2) {
            addCriterion(IProductRequirementRelateDAO.RequestStatus +
                " between", value1, value2, "requestStatus");

            return this;
        }

        public Criteria andRequestStatusNotBetween(String value1, String value2) {
            addCriterion(IProductRequirementRelateDAO.RequestStatus +
                " not between", value1, value2, "requestStatus");

            return this;
        }

        public Criteria andRequestTypeIsNull() {
            addCriterion(IProductRequirementRelateDAO.RequestType + " is null");

            return this;
        }

        public Criteria andRequestTypeIsNotNull() {
            addCriterion(IProductRequirementRelateDAO.RequestType +
                " is not null");

            return this;
        }

        public Criteria andRequestTypeIsNotEmpty() {
            addCriterion(IProductRequirementRelateDAO.RequestType +
                " is not null AND " + IProductRequirementRelateDAO.RequestType +
                " <> ''");

            return this;
        }

        public Criteria andRequestTypeIsEmpty() {
            addCriterion("(" + IProductRequirementRelateDAO.RequestType +
                " is null OR " + IProductRequirementRelateDAO.RequestType +
                " = '')");

            return this;
        }

        public Criteria andRequestTypeEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestType + " = ",
                value, "requestType");

            return this;
        }

        public Criteria andRequestTypeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestType);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestTypeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestType + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestTypeNotEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestType + " <>",
                value, "requestType");

            return this;
        }

        public Criteria andRequestTypeNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestType +
                " is null OR " + IProductRequirementRelateDAO.RequestType +
                " <>", value, "requestType");

            return this;
        }

        public Criteria andRequestTypeNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestType);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestTypeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestType + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestTypeGreaterThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestType + " >",
                value, "requestType");

            return this;
        }

        public Criteria andRequestTypeGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestType);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestTypeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestType + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestTypeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestType + " >=",
                value, "requestType");

            return this;
        }

        public Criteria andRequestTypeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestType);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestTypeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestType + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestTypeLessThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestType + " <",
                value, "requestType");

            return this;
        }

        public Criteria andRequestTypeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestType);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestTypeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestType + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestTypeLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RequestType + " <=",
                value, "requestType");

            return this;
        }

        public Criteria andRequestTypeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RequestType);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRequestTypeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestType + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestTypeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RequestType + " like",
                buffer.toString(), "requestType");

            return this;
        }

        public Criteria andRequestTypeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RequestType +
                " not like", buffer.toString(), "requestType");

            return this;
        }

        public Criteria andRequestTypeIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestTypeEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RequestType + " in",
                    values, "requestType");

                return this;
            }
        }

        public Criteria andRequestTypeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRequestTypeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RequestType +
                    " not in", values, "requestType");

                return this;
            }
        }

        public Criteria andRequestTypeIn(String[] values) {
            if (values.length == 1) {
                return andRequestTypeEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RequestType + " in",
                    Arrays.asList(values), "requestType");

                return this;
            }
        }

        public Criteria andRequestTypeNotIn(String[] values) {
            if (values.length == 1) {
                return andRequestTypeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RequestType +
                    " not in", Arrays.asList(values), "requestType");

                return this;
            }
        }

        public Criteria andRequestTypeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestType + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestTypeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RequestType + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRequestTypeBetween(String value1, String value2) {
            addCriterion(IProductRequirementRelateDAO.RequestType + " between",
                value1, value2, "requestType");

            return this;
        }

        public Criteria andRequestTypeNotBetween(String value1, String value2) {
            addCriterion(IProductRequirementRelateDAO.RequestType +
                " not between", value1, value2, "requestType");

            return this;
        }

        public Criteria andRelatedRequestCodeIsNull() {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                " is null");

            return this;
        }

        public Criteria andRelatedRequestCodeIsNotNull() {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                " is not null");

            return this;
        }

        public Criteria andRelatedRequestCodeIsNotEmpty() {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                " is not null AND " +
                IProductRequirementRelateDAO.RelatedRequestCode + " <> ''");

            return this;
        }

        public Criteria andRelatedRequestCodeIsEmpty() {
            addCriterion("(" + IProductRequirementRelateDAO.RelatedRequestCode +
                " is null OR " +
                IProductRequirementRelateDAO.RelatedRequestCode + " = '')");

            return this;
        }

        public Criteria andRelatedRequestCodeEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                " = ", value, "relatedRequestCode");

            return this;
        }

        public Criteria andRelatedRequestCodeEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestCode);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestCodeEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestCodeNotEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                " <>", value, "relatedRequestCode");

            return this;
        }

        public Criteria andRelatedRequestCodeNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                " is null OR " +
                IProductRequirementRelateDAO.RelatedRequestCode + " <>", value,
                "relatedRequestCode");

            return this;
        }

        public Criteria andRelatedRequestCodeNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestCode);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestCodeNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestCodeGreaterThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                " >", value, "relatedRequestCode");

            return this;
        }

        public Criteria andRelatedRequestCodeGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestCode);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestCodeGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestCodeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                " >=", value, "relatedRequestCode");

            return this;
        }

        public Criteria andRelatedRequestCodeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestCode);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestCodeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestCodeLessThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                " <", value, "relatedRequestCode");

            return this;
        }

        public Criteria andRelatedRequestCodeLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestCode);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestCodeLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestCodeLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                " <=", value, "relatedRequestCode");

            return this;
        }

        public Criteria andRelatedRequestCodeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestCode);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestCodeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestCodeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                " like", buffer.toString(), "relatedRequestCode");

            return this;
        }

        public Criteria andRelatedRequestCodeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                " not like", buffer.toString(), "relatedRequestCode");

            return this;
        }

        public Criteria andRelatedRequestCodeIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedRequestCodeEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                    " in", values, "relatedRequestCode");

                return this;
            }
        }

        public Criteria andRelatedRequestCodeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedRequestCodeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                    " not in", values, "relatedRequestCode");

                return this;
            }
        }

        public Criteria andRelatedRequestCodeIn(String[] values) {
            if (values.length == 1) {
                return andRelatedRequestCodeEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                    " in", Arrays.asList(values), "relatedRequestCode");

                return this;
            }
        }

        public Criteria andRelatedRequestCodeNotIn(String[] values) {
            if (values.length == 1) {
                return andRelatedRequestCodeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                    " not in", Arrays.asList(values), "relatedRequestCode");

                return this;
            }
        }

        public Criteria andRelatedRequestCodeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestCodeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestCodeBetween(String value1,
            String value2) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                " between", value1, value2, "relatedRequestCode");

            return this;
        }

        public Criteria andRelatedRequestCodeNotBetween(String value1,
            String value2) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestCode +
                " not between", value1, value2, "relatedRequestCode");

            return this;
        }

        public Criteria andRelatedRequestNameIsNull() {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                " is null");

            return this;
        }

        public Criteria andRelatedRequestNameIsNotNull() {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                " is not null");

            return this;
        }

        public Criteria andRelatedRequestNameIsNotEmpty() {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                " is not null AND " +
                IProductRequirementRelateDAO.RelatedRequestName + " <> ''");

            return this;
        }

        public Criteria andRelatedRequestNameIsEmpty() {
            addCriterion("(" + IProductRequirementRelateDAO.RelatedRequestName +
                " is null OR " +
                IProductRequirementRelateDAO.RelatedRequestName + " = '')");

            return this;
        }

        public Criteria andRelatedRequestNameEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                " = ", value, "relatedRequestName");

            return this;
        }

        public Criteria andRelatedRequestNameEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestNameEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestNameNotEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                " <>", value, "relatedRequestName");

            return this;
        }

        public Criteria andRelatedRequestNameNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                " is null OR " +
                IProductRequirementRelateDAO.RelatedRequestName + " <>", value,
                "relatedRequestName");

            return this;
        }

        public Criteria andRelatedRequestNameNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestNameNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestNameGreaterThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                " >", value, "relatedRequestName");

            return this;
        }

        public Criteria andRelatedRequestNameGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestNameGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestNameGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                " >=", value, "relatedRequestName");

            return this;
        }

        public Criteria andRelatedRequestNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestNameLessThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                " <", value, "relatedRequestName");

            return this;
        }

        public Criteria andRelatedRequestNameLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestNameLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestNameLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                " <=", value, "relatedRequestName");

            return this;
        }

        public Criteria andRelatedRequestNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                " like", buffer.toString(), "relatedRequestName");

            return this;
        }

        public Criteria andRelatedRequestNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                " not like", buffer.toString(), "relatedRequestName");

            return this;
        }

        public Criteria andRelatedRequestNameIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedRequestNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                    " in", values, "relatedRequestName");

                return this;
            }
        }

        public Criteria andRelatedRequestNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedRequestNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                    " not in", values, "relatedRequestName");

                return this;
            }
        }

        public Criteria andRelatedRequestNameIn(String[] values) {
            if (values.length == 1) {
                return andRelatedRequestNameEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                    " in", Arrays.asList(values), "relatedRequestName");

                return this;
            }
        }

        public Criteria andRelatedRequestNameNotIn(String[] values) {
            if (values.length == 1) {
                return andRelatedRequestNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                    " not in", Arrays.asList(values), "relatedRequestName");

                return this;
            }
        }

        public Criteria andRelatedRequestNameIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestNameNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestNameBetween(String value1,
            String value2) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                " between", value1, value2, "relatedRequestName");

            return this;
        }

        public Criteria andRelatedRequestNameNotBetween(String value1,
            String value2) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestName +
                " not between", value1, value2, "relatedRequestName");

            return this;
        }

        public Criteria andRelatedRequestContentIsNull() {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                " is null");

            return this;
        }

        public Criteria andRelatedRequestContentIsNotNull() {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                " is not null");

            return this;
        }

        public Criteria andRelatedRequestContentIsNotEmpty() {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                " is not null AND " +
                IProductRequirementRelateDAO.RelatedRequestContent + " <> ''");

            return this;
        }

        public Criteria andRelatedRequestContentIsEmpty() {
            addCriterion("(" +
                IProductRequirementRelateDAO.RelatedRequestContent +
                " is null OR " +
                IProductRequirementRelateDAO.RelatedRequestContent + " = '')");

            return this;
        }

        public Criteria andRelatedRequestContentEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                " = ", value, "relatedRequestContent");

            return this;
        }

        public Criteria andRelatedRequestContentEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestContent);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestContentEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestContentNotEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                " <>", value, "relatedRequestContent");

            return this;
        }

        public Criteria andRelatedRequestContentNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                " is null OR " +
                IProductRequirementRelateDAO.RelatedRequestContent + " <>",
                value, "relatedRequestContent");

            return this;
        }

        public Criteria andRelatedRequestContentNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestContent);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestContentNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestContentGreaterThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                " >", value, "relatedRequestContent");

            return this;
        }

        public Criteria andRelatedRequestContentGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestContent);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestContentGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestContentGreaterThanOrEqualTo(
            String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                " >=", value, "relatedRequestContent");

            return this;
        }

        public Criteria andRelatedRequestContentGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestContent);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestContentGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestContentLessThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                " <", value, "relatedRequestContent");

            return this;
        }

        public Criteria andRelatedRequestContentLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestContent);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestContentLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestContentLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                " <=", value, "relatedRequestContent");

            return this;
        }

        public Criteria andRelatedRequestContentLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestContent);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestContentLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestContentLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                " like", buffer.toString(), "relatedRequestContent");

            return this;
        }

        public Criteria andRelatedRequestContentNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                " not like", buffer.toString(), "relatedRequestContent");

            return this;
        }

        public Criteria andRelatedRequestContentIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedRequestContentEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                    " in", values, "relatedRequestContent");

                return this;
            }
        }

        public Criteria andRelatedRequestContentNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedRequestContentNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                    " not in", values, "relatedRequestContent");

                return this;
            }
        }

        public Criteria andRelatedRequestContentIn(String[] values) {
            if (values.length == 1) {
                return andRelatedRequestContentEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                    " in", Arrays.asList(values), "relatedRequestContent");

                return this;
            }
        }

        public Criteria andRelatedRequestContentNotIn(String[] values) {
            if (values.length == 1) {
                return andRelatedRequestContentNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                    " not in", Arrays.asList(values), "relatedRequestContent");

                return this;
            }
        }

        public Criteria andRelatedRequestContentIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestContentNotIn(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestContentBetween(String value1,
            String value2) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                " between", value1, value2, "relatedRequestContent");

            return this;
        }

        public Criteria andRelatedRequestContentNotBetween(String value1,
            String value2) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestContent +
                " not between", value1, value2, "relatedRequestContent");

            return this;
        }

        public Criteria andRelatedRequestLevelIsNull() {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                " is null");

            return this;
        }

        public Criteria andRelatedRequestLevelIsNotNull() {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                " is not null");

            return this;
        }

        public Criteria andRelatedRequestLevelIsNotEmpty() {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                " is not null AND " +
                IProductRequirementRelateDAO.RelatedRequestLevel + " <> ''");

            return this;
        }

        public Criteria andRelatedRequestLevelIsEmpty() {
            addCriterion("(" +
                IProductRequirementRelateDAO.RelatedRequestLevel +
                " is null OR " +
                IProductRequirementRelateDAO.RelatedRequestLevel + " = '')");

            return this;
        }

        public Criteria andRelatedRequestLevelEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                " = ", value, "relatedRequestLevel");

            return this;
        }

        public Criteria andRelatedRequestLevelEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestLevel);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestLevelEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestLevelNotEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                " <>", value, "relatedRequestLevel");

            return this;
        }

        public Criteria andRelatedRequestLevelNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                " is null OR " +
                IProductRequirementRelateDAO.RelatedRequestLevel + " <>",
                value, "relatedRequestLevel");

            return this;
        }

        public Criteria andRelatedRequestLevelNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestLevel);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestLevelNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestLevelGreaterThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                " >", value, "relatedRequestLevel");

            return this;
        }

        public Criteria andRelatedRequestLevelGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestLevel);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestLevelGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestLevelGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                " >=", value, "relatedRequestLevel");

            return this;
        }

        public Criteria andRelatedRequestLevelGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestLevel);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestLevelGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestLevelLessThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                " <", value, "relatedRequestLevel");

            return this;
        }

        public Criteria andRelatedRequestLevelLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestLevel);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestLevelLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestLevelLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                " <=", value, "relatedRequestLevel");

            return this;
        }

        public Criteria andRelatedRequestLevelLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestLevel);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestLevelLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestLevelLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                " like", buffer.toString(), "relatedRequestLevel");

            return this;
        }

        public Criteria andRelatedRequestLevelNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                " not like", buffer.toString(), "relatedRequestLevel");

            return this;
        }

        public Criteria andRelatedRequestLevelIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedRequestLevelEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                    " in", values, "relatedRequestLevel");

                return this;
            }
        }

        public Criteria andRelatedRequestLevelNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedRequestLevelNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                    " not in", values, "relatedRequestLevel");

                return this;
            }
        }

        public Criteria andRelatedRequestLevelIn(String[] values) {
            if (values.length == 1) {
                return andRelatedRequestLevelEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                    " in", Arrays.asList(values), "relatedRequestLevel");

                return this;
            }
        }

        public Criteria andRelatedRequestLevelNotIn(String[] values) {
            if (values.length == 1) {
                return andRelatedRequestLevelNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                    " not in", Arrays.asList(values), "relatedRequestLevel");

                return this;
            }
        }

        public Criteria andRelatedRequestLevelIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestLevelNotIn(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestLevelBetween(String value1,
            String value2) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                " between", value1, value2, "relatedRequestLevel");

            return this;
        }

        public Criteria andRelatedRequestLevelNotBetween(String value1,
            String value2) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestLevel +
                " not between", value1, value2, "relatedRequestLevel");

            return this;
        }

        public Criteria andRelatedRequestStatusIsNull() {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                " is null");

            return this;
        }

        public Criteria andRelatedRequestStatusIsNotNull() {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                " is not null");

            return this;
        }

        public Criteria andRelatedRequestStatusIsNotEmpty() {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                " is not null AND " +
                IProductRequirementRelateDAO.RelatedRequestStatus + " <> ''");

            return this;
        }

        public Criteria andRelatedRequestStatusIsEmpty() {
            addCriterion("(" +
                IProductRequirementRelateDAO.RelatedRequestStatus +
                " is null OR " +
                IProductRequirementRelateDAO.RelatedRequestStatus + " = '')");

            return this;
        }

        public Criteria andRelatedRequestStatusEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                " = ", value, "relatedRequestStatus");

            return this;
        }

        public Criteria andRelatedRequestStatusEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestStatus);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestStatusEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestStatusNotEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                " <>", value, "relatedRequestStatus");

            return this;
        }

        public Criteria andRelatedRequestStatusNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                " is null OR " +
                IProductRequirementRelateDAO.RelatedRequestStatus + " <>",
                value, "relatedRequestStatus");

            return this;
        }

        public Criteria andRelatedRequestStatusNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestStatus);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestStatusNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestStatusGreaterThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                " >", value, "relatedRequestStatus");

            return this;
        }

        public Criteria andRelatedRequestStatusGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestStatus);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestStatusGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestStatusGreaterThanOrEqualTo(
            String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                " >=", value, "relatedRequestStatus");

            return this;
        }

        public Criteria andRelatedRequestStatusGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestStatus);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestStatusGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestStatusLessThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                " <", value, "relatedRequestStatus");

            return this;
        }

        public Criteria andRelatedRequestStatusLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestStatus);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestStatusLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestStatusLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                " <=", value, "relatedRequestStatus");

            return this;
        }

        public Criteria andRelatedRequestStatusLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestStatus);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestStatusLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestStatusLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                " like", buffer.toString(), "relatedRequestStatus");

            return this;
        }

        public Criteria andRelatedRequestStatusNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                " not like", buffer.toString(), "relatedRequestStatus");

            return this;
        }

        public Criteria andRelatedRequestStatusIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedRequestStatusEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                    " in", values, "relatedRequestStatus");

                return this;
            }
        }

        public Criteria andRelatedRequestStatusNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedRequestStatusNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                    " not in", values, "relatedRequestStatus");

                return this;
            }
        }

        public Criteria andRelatedRequestStatusIn(String[] values) {
            if (values.length == 1) {
                return andRelatedRequestStatusEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                    " in", Arrays.asList(values), "relatedRequestStatus");

                return this;
            }
        }

        public Criteria andRelatedRequestStatusNotIn(String[] values) {
            if (values.length == 1) {
                return andRelatedRequestStatusNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                    " not in", Arrays.asList(values), "relatedRequestStatus");

                return this;
            }
        }

        public Criteria andRelatedRequestStatusIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestStatusNotIn(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestStatusBetween(String value1,
            String value2) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                " between", value1, value2, "relatedRequestStatus");

            return this;
        }

        public Criteria andRelatedRequestStatusNotBetween(String value1,
            String value2) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestStatus +
                " not between", value1, value2, "relatedRequestStatus");

            return this;
        }

        public Criteria andRelatedRequestTypeIsNull() {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                " is null");

            return this;
        }

        public Criteria andRelatedRequestTypeIsNotNull() {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                " is not null");

            return this;
        }

        public Criteria andRelatedRequestTypeIsNotEmpty() {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                " is not null AND " +
                IProductRequirementRelateDAO.RelatedRequestType + " <> ''");

            return this;
        }

        public Criteria andRelatedRequestTypeIsEmpty() {
            addCriterion("(" + IProductRequirementRelateDAO.RelatedRequestType +
                " is null OR " +
                IProductRequirementRelateDAO.RelatedRequestType + " = '')");

            return this;
        }

        public Criteria andRelatedRequestTypeEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                " = ", value, "relatedRequestType");

            return this;
        }

        public Criteria andRelatedRequestTypeEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestType);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestTypeEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                " = ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestTypeNotEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                " <>", value, "relatedRequestType");

            return this;
        }

        public Criteria andRelatedRequestTypeNotEqualToOrIsNull(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                " is null OR " +
                IProductRequirementRelateDAO.RelatedRequestType + " <>", value,
                "relatedRequestType");

            return this;
        }

        public Criteria andRelatedRequestTypeNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestType);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestTypeNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestTypeGreaterThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                " >", value, "relatedRequestType");

            return this;
        }

        public Criteria andRelatedRequestTypeGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestType);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestTypeGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                " > ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestTypeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                " >=", value, "relatedRequestType");

            return this;
        }

        public Criteria andRelatedRequestTypeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestType);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestTypeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestTypeLessThan(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                " <", value, "relatedRequestType");

            return this;
        }

        public Criteria andRelatedRequestTypeLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestType);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestTypeLessThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                " < ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestTypeLessThanOrEqualTo(String value) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                " <=", value, "relatedRequestType");

            return this;
        }

        public Criteria andRelatedRequestTypeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductRequirementRelateDAO.RelatedRequestType);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedRequestTypeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestTypeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                " like", buffer.toString(), "relatedRequestType");

            return this;
        }

        public Criteria andRelatedRequestTypeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                " not like", buffer.toString(), "relatedRequestType");

            return this;
        }

        public Criteria andRelatedRequestTypeIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedRequestTypeEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                    " in", values, "relatedRequestType");

                return this;
            }
        }

        public Criteria andRelatedRequestTypeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRelatedRequestTypeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                    " not in", values, "relatedRequestType");

                return this;
            }
        }

        public Criteria andRelatedRequestTypeIn(String[] values) {
            if (values.length == 1) {
                return andRelatedRequestTypeEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                    " in", Arrays.asList(values), "relatedRequestType");

                return this;
            }
        }

        public Criteria andRelatedRequestTypeNotIn(String[] values) {
            if (values.length == 1) {
                return andRelatedRequestTypeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                    " not in", Arrays.asList(values), "relatedRequestType");

                return this;
            }
        }

        public Criteria andRelatedRequestTypeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestTypeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedRequestTypeBetween(String value1,
            String value2) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                " between", value1, value2, "relatedRequestType");

            return this;
        }

        public Criteria andRelatedRequestTypeNotBetween(String value1,
            String value2) {
            addCriterion(IProductRequirementRelateDAO.RelatedRequestType +
                " not between", value1, value2, "relatedRequestType");

            return this;
        }
    }
}
